package simple;

/**
 * 给定一个 正整数 num ，编写一个函数，如果 num 是一个完全平方数，则返回 true ，否则返回 false 。
 *
 * 进阶：不要 使用任何内置的库函数，如result sqrt 。
 *
 * 链接：https://leetcode-cn.com/problems/valid-perfect-square
 * @author 胡宇轩
 * @Email: yuxuan.hu01@bianlifeng.com
 */
public class ValidPerfectSquare {
    class Solution {
        public boolean isPerfectSquare(int num) {
            int l = 1;
            int r = num;

            while(l <= r){
                int mid = l + (r - l) / 2;
                long m = (long) mid * (long) mid;
                if(m == num){
                    return true;
                }
                if(m < num){
                    l = mid + 1;
                }else{
                    r = mid - 1;
                }
            }

            return false;
        }
    }
}
